Technical Field
Embodiments described herein are related to hardware circuits for public key acceleration.
Description of the Related Art
A variety of open networks are being used for communication today, such as public wireless fidelity (WiFi) networks, Bluetooth connections, near field wireless communication, etc. On any of these communications media, the data being exchanged between two devices may be susceptible to capture by unauthorized third parties. Similarly, communications on large networks such as the Internet may be susceptible to observation/capture on the many devices over which the communications travel. Accordingly, the secure exchange of information has become an increasing priority. For example, the ability to perform financial transactions over the media or to transmit protected data such as copyrighted works over the media may be based on the secure exchange. Generally, the secure exchange may include the ability to identify oneself and to identify another party without easily permitting the mimicking of the other party, so that the parties can each verify that they are communicating with a legitimate counterpart. The secure exchange may also include the ability to ensure that only the other party may view the communication. The identify verification may be referred to as authentication (e.g. through such mechanisms as a digital signature), and the ability to control access to the communication is typically handled using encryption.
One mechanism for authenticating and providing encryption/decryption is public key cryptography. In this mechanism, each party has a pair of keys: a public key and a private key. The public key may be freely shared, and may be used to authenticate a digital signature from the owner and to encrypt data for the owner. The owner may maintain the private key in secrecy, and may use the private key to decrypt data encrypted with the public key and to generate the digital signature. Because the public key can be freely shared, it is relatively simple to arrange for secure exchange by simply exchanging public keys between the parties. For even more secure exchange, a shared secret can be generated using each party's public key and the other party's private key.
While public key cryptography system has many benefits in terms of simplicity, the secrecy of the private key is paramount. If the private key is compromised, the integrity of all communication to/from the owner of the private key becomes suspect. That is, the digital signatures from that owner may not be legitimate, and the data encrypted with that owner's public key may not be secure from third party viewing. Typically, the private key is generated in software on a device used by the user and is stored in the memory of that device. Accordingly, the private key is susceptible to being stolen/viewed by a third party in even the best of systems which attempt to hide the key.